package pool;

import java.util.Stack;

//锅类
/*
 * 有限缓冲区
 * Stack描述锅。后进先出
 *
 * */
public class Pot {

    private Stack<Integer> pot = new Stack<Integer>();

    public static final int MAX_LEN = 10; //锅最多只能放10个馒头。
    public static final int MAX_NUMBER =100; //妈妈一共做100个馒头，程序就结束了。
    public static int COUNT = 0; //统计现在做了多少个馒头。
    private int bigSonNum; //大儿子吃的数量
    private int smallSonNum; //小儿子吃的数量

    public Stack<Integer> getPot() {
        return pot;
    }

    //做馒头的方法
    public synchronized void makeCake(){

        COUNT++;
        pot.push(COUNT);
        System.out.println("妈妈做了第" + COUNT + "个馒头....");
        try {
            Thread.sleep(10);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    //吃馒头的方法
    public synchronized  void eatCake(String name){
        int temp = pot.pop(); //弹出一个馒头。
        System.out.println(name+"吃了第" + temp + "个馒头...");

        if("大林".equals(name)){
            this.bigSonNum++;
        }else{
            this.smallSonNum++;
        }

        try {
            Thread.sleep(10);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }

    //显示结果
    public void showResult(){
        System.out.println("大林吃了：" + bigSonNum + "个馒头!");
        System.out.println("小林吃了：" + smallSonNum+"个馒头！");
    }

}
